<?php
/**
 * Класс, отвечающий за создание и управление DAO
 * @author Genocide
 */
class DAOManager{
	// Ссылка на подключение к базе данных
	private $dbh;
	// Конструктор
	public function DAOManager($db){
		$this->dbh = $db;
		// Выставить если нужно режим транзакций
	}
	/**
	 * Создать DAO
	 * @param unknown $daoName Имя создаваемого DAO
	 */
	public function createDAO($daoName) {
		require_once $_SERVER['DOCUMENT_ROOT'].'/model/DAO/mysql/'.$daoName.'Impl.php';
		$daoClassName = $daoName.'Impl';
		$daoImpl = new $daoClassName($this->dbh);
		return $daoImpl;
	}
	/**
	 * Начать транзакцию
	 */
	public function transactionBegin() {
		// Начинаем транзакцию и выключаем режим autocommit
		$this->dbh->connection->beginTransaction();
	}
	/**
	 * Завершить транзакцию
	 */
	public function transactionCommit() {
		// Завершаем транзакцию и включаем режим autocommit
		$this->dbh->connection->commit();
	}
	/**
	 * Откатить транзакцию
	 */
	public function transactionRollback() {
		$this->dbh->connection->rollBack();
	}
	/**
	 * Закрыть подключение к базе данных
	 */
	public function close(){
		/*
		 * Пока что нигде не используется, так как используем постоянное подключение к базе данных.
		 */
		$this->db = null;  
	}
}
?>